// pages/goods/list/index.js

import { reqGoodsList } from "../../../api/goods"

Page({
    /**
     * 页面的初始数据
     */
    data: {
        goodsList: [], // 商品列表数据
        total: 0,
        isFinish: false, // 判断数据是否加载完毕
        isLoading: false,   // 
        // 商品列表请求参数
        requestData: {
            page: 1,    // 页码
            limit: 10,  // 每页请求条数
            category1Id: '',    // 一级分类ID
            category2Id: '' // 二级分类ID
        }
    },
    async getGoodsList() {
        // 在请求发送之前，需要将 isLoading设置为true，表示请求正在发送中
        this.data.isLoading = true
        const { data } = await reqGoodsList(this.data.requestData)
        // 在请求结束以后，需要将isLoading设置为false，表示请求已经结束
        this.data.isLoading = false
        this.setData({
            goodsList: [ ...this.data.goodsList, ...data.records],
            total: data.total
        })
    },
    // 监听到页面上拉操作
    onReachBottom() {
        // 解构数据
        const { goodsList, total, requestData, isLoading } = this.data
        const { page } = requestData

        // 判断isLoading状态
        // 如果状态等于true，说明请求正在发送中，如果请求正在发送中，就不请求下一页数据
        if (isLoading) {
            return
        }
        
        // 开始让 goodsList长度和total进行对比
        // 如果数据相等，商品列表已经加载完毕，如果数据已经加载完毕
        if (goodsList.length === total) {
            this.setData({
                isFinish: true
            })
            return
        }

        // 页码 +1
        this.setData({
            requestData: { ...this.data.requestData, page: page + 1 }
        })

        // 重新获取商品列表
        this.getGoodsList()
    },
    onPullDownRefresh() {
        // 将数据进行重置
        this.setData({
            goodsList: [],
            total: 0,
            isFinish: false,
            requestData: { ...this.data.requestData, page: 1 }
        })
        // 使用最新的参数发送请求
        this.getGoodsList()

        // 手动关闭下拉刷新的效果
        wx.stopPullDownRefresh()
    },
    onLoad(options) {
        // Object.assign 用来合并对象，后面对象的属性会往前进行合并
        Object.assign(this.data.requestData, options)

        this.getGoodsList()
    },
    // 转发功能，转发给好友、群聊
    onShareAppMessage() {
        return {
            title: '所有的怦然心动，都是你',
            path: '/modules/goodModule/pages/goods/list/list',
            imageUrl: '../../../../../assets/images/love.jpg'
        }
    },
    // 能够把小程序分享到朋友圈
    onShareTimeline() {

    }
})